如何轻松使用Python写出漂亮的命令行程序

您所在的位置:网站首页 python 命令行 调试 如何轻松使用Python写出漂亮的命令行程序

如何轻松使用Python写出漂亮的命令行程序

#如何轻松使用Python写出漂亮的命令行程序| 来源: 网络整理| 查看: 265

诞生之初用来作为配置管理语言的Python,现在已经成为最流行的编程语言之一,尤其是随着AI应用的兴起,变得无处不在。

Python中的getopt,optparse模块都可以进行命令行程序的开发,不过它们已经被废弃,在2.7和3.2版本中引入了argparse模块;这里介绍使用argparser模块,只需要数十行代码,就可以做出漂亮的命令行程序。

1.基本的命令行

看看官方文档里的一个示例:

这几行代码实现的功能为:如果命令行输入不带--sum选项,则对输入的多个整数执行max操作;否则,执行sum操作。例如:在命令行中执行:python prog.py 1 2 3 4输出为:4

在命令行中执行:python prog.py 1 2 3 4 --sum输出为:10

上面的代码中,主要的过程分为三个步骤:

调用argparse.ArgumentParser的构造器创建一个ArgumentParser对象。

调用ArgumentParser的add_argument()方法添加命令行的参数,包括可选参数和必选参数。其中以--、 -开头的表示可选参数,其它的表示必须输入的参数。

调用parser.parse_args()方法对传入的sys.argv参数进行解析。

2.实现子命令

有时候,我们可以根据功能将命令行分组成一系列相关的子命令。例如,Git命令行可以分为以下几组:

在Python中,利用argparse模块也可以很容易做出这样的子命令行程序。

例如,我们要做一个对用户信息进行管理的命令行程序,包括添加、删除、查询显示等几个功能。

我们可以根据功能将其分为三个子命令:add,delete,show。

相应的代码可以这样写:

对上面的代码进行概要的解释:ArgumentParser对象的add_subparsers()方法创建了一个特殊的action实例,对这个实例分别调用add_parser()方法来创建子命令对应的ArgumentParser,再调用这个ArgumentParser实例的add_argument()方法来添加子命令的参数。一个比较方便的地方在于,可以通过ArgumentParser的set_defaults()方法来设置子命令对应的处理函数。上面的示例中,分别为三个子命令设置了处理函数:add_fn,delete_fn,show_fn。

在命令行程序中执行:python cmd.py --help,将显示出以下信息:

从帮助信息中可以看到,命令行被组织为三个子命令,分别为add,delete,show。

在命令行中执行:python cmd.py add --help,可以查看add子命令的帮助信息:

对于add子命令,它有3个参数,分别为用户名、联系地址、电话号码;其中用户名为必选参数,其它两个为可选参数。

在命令行中执行:python cmd.py add --name 'Eric' --addr 'California,USA' --phone '0076938377'`

添加一个User的处理逻辑将由add_fn()来完成。程序中将得到一个信息为{name='Eric',addr='California,USA', phone='0076938377'}的User。

其它的delete和show子命令与此类似,不再赘述。

3.小结

使用Python的argparse模块,短短的几十行代码就可以搭建起来一个命令行程序的骨架。

argparse模块中最重要的是ArgumentParser对象,它包含了以下几个方法:

add_argument()

add_subparsers()

parse_args()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3